#ifndef MAPDRAWER3D_H
#define	MAPDRAWER3D_H

#include "pac_level.h"
#include "pac_object.h"
#include "pac_game.h"

// Indice des textures dans le tableau
#define WALL_TEX 0

#define FLOOR_TEX 1

#define FRIZE_TEX 2

#define VORTEX_TEX 3

#define FENCE_TEX 4

#define SPACE_TEX 5

// Nombre de textures présentes
#define TEX_3D_COUNT 6

// Tableau contenant le nombre de répétitions des textures par unité de surface
float texRepeatCount[TEX_3D_COUNT];

// Tableau contenant les textures
static GLuint tex3DTable[TEX_3D_COUNT];


void load3DTextures(void);

void drawSideFriz(int x, int y);

void drawFaceFriz(int x, int y);

void drawSideWall(int x, int y, int aTexIndex);

void drawFaceWall(int x, int y, int aTexIndex);

void drawFrontWall(int x, int y, int aTexIndex);

void drawLeftWall(int x, int y, int aTexIndex);

void drawRightWall(int x, int y, int aTexIndex);

void drawBackWall(int x, int y, int aTexIndex);

void drawFloor(int x, int y, int aTexIndex);

void drawRoof(int x, int y, int aTexIndex);

void drawBlock(int x, int y, int aTexIndex);

void draw3DCase(PacLevel* aLevel, int aCaseCode, int posX, int posY);

void draw3DMap(PacGame * aPacGame);

void updatePacMouth(void);

#endif	/* MAPDRAWER3D_H */

